1
硬件与软件映射:计算能力版本
AI021Lesson 5
00:00

计算能力(CC)充当虚拟架构与真实架构之间的版本桥梁 虚拟架构 (PTX)与 真实架构 (SASS/二进制文件)。开发者使用 nvcc 来针对特定平台,涵盖从桌面/服务器平台到嵌入式平台的各种系统模型,例如 Linux 64位(LP64)Windows 64位(LLP64)

1. 虚拟架构与真实架构

CUDA 工具包支持最近两个主要版本的 GPU 架构,具体参见 表 29:不同计算能力版本的功能支持(7.5 到 12.x)。我们通过标志如: nvcc --generate-code arch=compute_80,code=sm_90 prog.cu。对于面向未来的目标,可使用如 nvcc -arch=sm_100 或专用变体如 nvcc -arch=sm_100a 等标志。

2. 宏层级结构

编译器使用 __CUDA_ARCH__ 来实现代码分支。 宏 __CUDA_ARCH__ 仅在设备代码中定义 (例如, __device____global__)。更细粒度的控制由 __CUDA_ARCH_SPECIFIC____CUDA_ARCH_FAMILY_SPECIFIC__提供。某些特性,如 分布式共享内存 或特定的 NaN 数据负载,需要 计算能力 9.0 及以上计算能力 10.0 及以后

3. 数值限制与约束

精度随计算能力变化;例如,次正规数处理确保 $2^{-16382} \approx 3.36 \cdot 10^{-4932}$。硬件限制如 CUDA_DEVICE_MAX_COPY_CONNECTIONS=16.maxnreg PTX 指令 均严格依据目标计算能力版本执行。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>